package com.kunbo.cn.util.date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
//import org.apache.commons.codec.digest.DigestUtils;
//import com.jingshan.model.Page;
public final class CommonsUtil {
	public final static String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
	public final static String DATE_TIME_PATT = "yyyy-MM-dd";
	
    public static void testTime(){
       // System.out.println(timeToString("1503991612952"));
        System.out.println(stringToTime("2017-08-29 15:26:52"));
    }
    // 时间戳转字符串  1503991612952 ==> 2017-08-29 15:26:52  时间戳 是long 类型
   // public static String timeToString(String s){
    public static String timeToString(Long s){
        SimpleDateFormat sdf = new SimpleDateFormat(DATE_TIME_PATTERN);
        Date date;
        try {
            date = sdf.parse(sdf.format(new Date(new Long(s))));
            //Date date = sdf.parse(sdf.format(new Long(s)));// 等价于
            return sdf.format(date);
            //return String.valueOf(sdf.format(date));
        } catch (NumberFormatException e) {
            e.printStackTrace();
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
    // 字符串转时间戳 2017-08-29 15:26:52 ==> 1503991612952  注：timestamp
    public static Long stringToTime(String s){
    	 SimpleDateFormat sdf1 = new SimpleDateFormat(DATE_TIME_PATT);
        SimpleDateFormat sdf = new SimpleDateFormat(DATE_TIME_PATTERN);
        Date date;
        try {
        	if(s.length()==19){
	            date = sdf.parse(s);
	            return Long.valueOf(date.getTime());}
	        	else {
	            	date = sdf1.parse(s);
		            return Long.valueOf(date.getTime());
	            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 根据文件名获得文件后缀名
     * @param filename 文件名
     * @return 后缀名
     */
    public static String getSuffix(String filename) {
        int pos = filename.lastIndexOf(".");// 判读是否有 .
        return pos > 0 && pos < filename.length() - 1 ? filename.substring(pos) : null;
    }
    /**
     * 基于时间+随机数的方式获得唯一文件名
     * @param suffix 后缀名
     * @return 带后缀名的文件名
     */
    public static String getUniqueFilename1(String suffix) {
        long millis = System.currentTimeMillis();//产生一个当前的毫秒，这个毫秒其实就是自1970年1月1日0时起的毫秒数
        String randomString = String.format("%d%05d", millis, (int) (Math.random() * 100000));// 拼接毫秒数 + 5位补齐0的随机数
        return randomString + (suffix != null ? suffix : "");// 生成指定唯一的字符串
    }
    /**
     * 基于UUID的方式获得唯一文件名
     * @param suffix 后缀名
     * @return 带后缀名的文件名
     */
    public static String getUniqueFilename2(String suffix) {
        String uuidString = UUID.randomUUID().toString();// 生成 32位 通用唯一识别码
        return uuidString + (suffix != null ? suffix : "");
    }
    /**
     * 基于MD5摘要的方式获得唯一文件名
     * @param in 输入流
     * @param suffix 后缀名
     * @return 带后缀名的文件名
     */
    /*public static String getUniqueFilename3(InputStream in, String suffix) {
        try {
            String md5String = DigestUtils.md5Hex(in);// md5 摘要方式的 唯一数据流
            return md5String + (suffix != null ? suffix : "");
        } catch (IOException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
    }
    // 分页
    // 或分页
    public static Page getPage(String url,int page_size,int page_total,int page_now) {
        Page page = new Page();
        page.setFirstPage("<a href=\""+url+"?page=1\">首页</a>");
        page.setNextPage("<a href=\""+url+"?page="+((page_now < page_total)?(page_now + 1):page_total)+"\">&gt;</a>");
        page.setNowPage(""+page_now);

        if(page_now <= 2) {
            page.setPageNum1("");
        }else {
            int pageNum1 = (page_now -2 <= 1)?1:(page_now -2);
            page.setPageNum1("<a href=\""+url+"?page="+pageNum1+"\">"+pageNum1+"</a>");
        }

        if(page_now == 1) {
            page.setPageNum2("");
        }else {
            int pageNum2 = (page_now -1 <= 1)?1:(page_now -1);
            page.setPageNum2("<a href=\""+url+"?page="+pageNum2+"\">"+pageNum2+"</a>");
        }

        if(page_now >= page_total) {
            page.setPageNum3("");
        }else {
            int pageNum3 = (page_now +1 >= page_total)?page_total:(page_now +1);
            page.setPageNum3("<a href=\""+url+"?page="+pageNum3+"\">"+pageNum3+"</a>");
        }

        if(page_now >= page_total-1) {
            page.setPageNum4("");
        }else {
            int pageNum4 = (page_now +2 >= page_total)?page_total:(page_now +2);
            page.setPageNum4("<a href=\""+url+"?page="+pageNum4+"\">"+pageNum4+"</a>");
        }


        int page_pre = (page_now -1 <= 1)?1:(page_now -1);
        page.setPrePage("<a href=\""+url+"?page="+page_pre+"\">&lt;</a>");
        page.setTailPage("<a href=\""+url+"?page="+page_total+"\">尾页</a>");
        return page;

    }*/
// 类结束了
}
